package com.kafka.kafkatest.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * <p>
 * 消息队列消息表
 * </p>
 *
 * @author 四月
 * @since 2024-11-26
 */
@Data
@TableName("msg_log")
public class MsgLog {
    /**
     * 消息id
     */
    @TableId("msg_id")
    private String msgId;

    /**
     * 消息数据
     */
    @TableField(value = "msg_data",typeHandler = JacksonTypeHandler.class)
    private JSONObject msgData;

    /**
     * 主题名称
     */
    @TableField("topic_name")
    private String topicName;

    /**
     * 消费组
     */
    @TableField("group_id")
    private String groupId;

    /**
     * 消息类型 (0:消息队列  )
     */
    @TableField("msg_type")
    private String msgType;

    /**
     * 状态（0:消息投递中 1:投递成功 2:投递失败 4:消费成功）
     */
    @TableField("status")
    private String status;

    /**
     * 重试次数
     */
    @TableField("count")
    private Integer count;

    /**
     * 支持重试次数
     */
    @TableField("mac_count")
    private Integer macCount;

    /**
     * 报错信息
     */
    @TableField("error_msg")
    private String errorMsg;

    /**
     * 重试时间
     */
    @TableField("try_time")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date tryTime;

    /**
     * 创建人
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新人
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;

}
